// .eslintrc.js
module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
    es6: true,
    // UniApp 环境变量
    'uni/globals': true
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/recommended',
    // 如果是 TypeScript 项目
    'plugin:@typescript-eslint/recommended',
    // 避免eslint,prettier冲突 优先级置于最后
    'plugin:prettier/recommended'
  ],
  parserOptions: {
    parser: '@typescript-eslint/parser',
    // parser: '@babel/eslint-parser', // 或 '@typescript-eslint/parser'（TS项目）
    ecmaVersion: 2021,
    sourceType: 'module',
    requireConfigFile: false
  },
  plugins: ['vue', 'uni'],
  // 自定义规则
  rules: {
    // 基本规则
    'indent': ['error', 2], // 2空格缩进
    'quotes': ['error', 'single'], // 单引号
    'semi': ['error', 'never'], // 无分号
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    "@typescript-eslint/deprecation": "off",  // 关闭 ESLint 弃用检查

    // Vue 相关规则
    'vue/html-indent': ['error', 2],
    'vue/multi-word-component-names': 'off', // 允许单文件组件名

    // UniApp 特定规则（如果有需要）
    'uni/global-require': 'error',

    // TypeScript 特定规则（如果有需要）
    '@typescript-eslint/no-unused-vars': 'error',
    '@typescript-eslint/explicit-function-return-type': 'off'
  },
  // 定义全局变量（避免 ESLint 报错）
  globals: {
    uni: 'readonly', // UniApp 全局对象
    wx: 'readonly', // 微信小程序环境
    getApp: 'readonly',
    getCurrentPages: 'readonly',
    Page: 'readonly',
    Component: 'readonly'
  }
}
